GridFS এর জন্য MongoDB Driver ব্যবহার

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - MongoDB তে GridFS এবং ফাইল স্টোরেজ
189

MongoDB একটি শক্তিশালী NoSQL ডেটাবেস যা ডেটা সংরক্ষণের জন্য ডকুমেন্ট-ভিত্তিক মডেল ব্যবহার করে। তবে, যখন বড় ফাইল যেমন ইমেজ, ভিডিও, ডকুমেন্ট এবং অন্যান্য বাইনারি ফাইল স্টোর করতে হয়, তখন MongoDB সরাসরি এসব ফাইল সংরক্ষণ করতে পারে না। এজন্য MongoDB GridFS নামক একটি ফিচার প্রদান করে যা বড় ফাইল স্টোরেজের জন্য বিশেষভাবে ডিজাইন করা হয়েছে।

GridFS MongoDB এর একটি সাবসিস্টেম যা বাইনারি ফাইল সিস্টেমের মতো কাজ করে এবং বড় ফাইলকে ছোট ছোট অংশে (chunks) ভাগ করে ডেটাবেসে সংরক্ষণ করে। এটি Java MongoDB ড্রাইভার ব্যবহার করে সহজেই ইমপ্লিমেন্ট করা যায়।


GridFS কি?

GridFS MongoDB এর জন্য একটি ফাইল স্টোরেজ সিস্টেম যা বড় ফাইল (যেমন 16MB এর বেশি সাইজের ফাইল) ডেটাবেসে সংরক্ষণের জন্য উপযুক্ত। এটি মূলত দুটি সংগ্রহ (collection) ব্যবহার করে:

  1. fs.files: এখানে ফাইলের মেটাডেটা সংরক্ষণ করা হয়।
  2. fs.chunks: এখানে ফাইলের বাইনারি ডেটা ছোট ছোট অংশে বিভক্ত হয়ে সংরক্ষিত থাকে।

GridFS ব্যবহার করার মাধ্যমে আপনি সহজেই ফাইল আপলোড, ডাউনলোড এবং ম্যানেজ করতে পারবেন MongoDB ডেটাবেসের মধ্যে।


GridFS এর জন্য MongoDB ড্রাইভার ব্যবহার

১. MongoDB Java Driver ইনস্টলেশন

প্রথমে আপনার Java প্রজেক্টে MongoDB Java Driver এবং GridFS এর জন্য ডিপেনডেন্সি যোগ করতে হবে।

Maven Dependency:

<dependency>
  <groupId>org.mongodb</groupId>
  <artifactId>mongo-java-driver</artifactId>
  <version>4.4.0</version>
</dependency>
<dependency>
  <groupId>org.mongodb</groupId>
  <artifactId>mongodb-driver-gridfs</artifactId>
  <version>4.4.0</version>
</dependency>

Gradle Dependency:

implementation 'org.mongodb:mongo-java-driver:4.4.0'
implementation 'org.mongodb:mongodb-driver-gridfs:4.4.0'

Java MongoDB GridFS ব্যবহার

এখন চলুন দেখি কীভাবে Java MongoDB ড্রাইভার ব্যবহার করে GridFS ফিচারটি কাজে লাগানো যায়।

২. MongoClient তৈরি করা

MongoDB সার্ভারের সাথে সংযোগ স্থাপন করতে MongoClient ব্যবহার করা হয়।

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;

MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("myDatabase");

৩. GridFSBucket তৈরি করা

GridFSBucket একটি MongoDB ডেটাবেসে ফাইল আপলোড এবং ডাউনলোড করার জন্য ব্যবহৃত হয়।

GridFSBucket gridFSBucket = GridFSBuckets.create(database);

৪. ফাইল আপলোড করা (Uploading Files)

GridFS এ ফাইল আপলোড করতে GridFSUploadStream ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি লোট ফাইল আপলোড করা হচ্ছে:

import com.mongodb.client.gridfs.GridFSUploadStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Paths;

FileInputStream streamToUploadFrom = new FileInputStream(Paths.get("path/to/file").toFile());
GridFSUploadStream uploadStream = gridFSBucket.openUploadStream("myFile.jpg");

byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = streamToUploadFrom.read(buffer)) != -1) {
    uploadStream.write(buffer, 0, bytesRead);
}
uploadStream.close();
streamToUploadFrom.close();

এখানে openUploadStream মেথড ব্যবহার করে ফাইলটি GridFS এ আপলোড করা হচ্ছে। ফাইলের নাম "myFile.jpg" হিসেবে দেওয়া হয়েছে।

৫. ফাইল ডাউনলোড করা (Downloading Files)

GridFS থেকে ফাইল ডাউনলোড করতে GridFSDownloadStream ব্যবহার করা হয়। নিচে একটি উদাহরণ দেখানো হলো:

import com.mongodb.client.gridfs.GridFSDownloadStream;
import java.io.FileOutputStream;
import java.io.IOException;

GridFSDownloadStream downloadStream = gridFSBucket.openDownloadStream(new ObjectId("fileId"));

FileOutputStream streamToWriteTo = new FileOutputStream("path/to/downloaded_file.jpg");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = downloadStream.read(buffer)) != -1) {
    streamToWriteTo.write(buffer, 0, bytesRead);
}
streamToWriteTo.close();
downloadStream.close();

এখানে openDownloadStream মেথড ব্যবহার করে নির্দিষ্ট fileId দিয়ে ফাইলটি ডাউনলোড করা হচ্ছে।

৬. ফাইল মেটাডেটা প্রাপ্তি (Retrieving File Metadata)

GridFS থেকে ফাইলের মেটাডেটা যেমন নাম, সাইজ ইত্যাদি পেতে GridFSFile ব্যবহার করা হয়:

import com.mongodb.client.gridfs.model.GridFSFile;

GridFSFile gridFSFile = gridFSBucket.find(eq("filename", "myFile.jpg")).first();
if (gridFSFile != null) {
    System.out.println("File Name: " + gridFSFile.getFilename());
    System.out.println("File Length: " + gridFSFile.getLength());
}

MongoDB GridFS একটি শক্তিশালী টুল যা MongoDB তে বড় ফাইল সংরক্ষণ এবং পরিচালনা করার জন্য ব্যবহার করা হয়। Java MongoDB ড্রাইভার ব্যবহার করে, আপনি GridFS এর মাধ্যমে বড় ফাইল আপলোড, ডাউনলোড এবং মেটাডেটা পরিচালনা করতে পারেন। এটি Java ডেভেলপারদের জন্য MongoDB এর একটি অত্যন্ত গুরুত্বপূর্ণ ফিচার, যা ফাইল স্টোরেজের কাজকে আরও সহজ এবং দক্ষ করে তোলে।


Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...